A portion of the disclosure of this patent document contains material that is subject to copyright protection. The copyright owner has no objection to the facsimile reproduction by anyone of the patent document or the patent disclosure, as it appears in the Patent and Trademark Office patent files or records, but otherwise reserves all copyright rights whatsoever.
1. Field of the Invention
The invention relates generally to the field of stepper motors. More particularly, the invention relates to the control of stepper motors.
2. Related Art
Many of today""s automotive instrument clusters use air core motors to drive the various gauges in the cluster. A cluster can include different gauges for measuring speed, engine rpms, fuel level, battery power, oil pressure, and the like. Air core motors can control the pointers on gauges precisely and smoothly. However, air core motors are relatively expensive. Stepper motors, which are sometimes referred to as xe2x80x9cstepxe2x80x9d or xe2x80x9csteppingxe2x80x9d motors, are typically less expensive than comparably powerful air core motors and can also be used to control such gauges.
Stepper motors are equipped with coils, or windings. Current is applied to the individual coils in order to advance the stepper motor a desired number of steps. Depending on how the current is applied (versus the duration with which it is applied), the stepper motor can be caused to move in full steps, half steps, or even micro-steps.
A stepper motor is characterized by operational features such as its maximum velocity (measured, e.g., in steps per unit time), its maximum acceleration (measured, e.g., in steps per unit time squared), and its step value, which represents a ratio of steps to degrees, or distance, of movement (e.g., a rotational step value of 12 steps/degree means that it takes the stepper motor 12 steps to achieve one degree of rotation). From these operational features, it is possible to build a table that details how long it takes to move each step. In the art, this table is sometimes referred to as a xe2x80x9crampxe2x80x9d table. The values in the table, which can include the time duration required between steps, define how the stepper motor can be operated.
Known stepper motors have been operated using a single table. In such cases, the acceleration profile and the deceleration profile that characterize the movement of the stepper motor are the same. That is, they share the same absolute value for slope (the acceleration slope is positive and the deceleration slope is negative). In these cases, problems of jitter and overshooting have existed.
For example, during operation, a controller with access to a single table for both acceleration and deceleration of the stepper motor will recognize the point, or speed, to which it must decelerate. It will then cause the stepper motor to decelerate along the predetermined deceleration profile. During that deceleration, if the controller receives another signal indicating a final deceleration point that is closer to the current position of the stepper motor than the original deceleration point, the controller causes the motor to continue following the deceleration profile (i.e., the only profile available), the new final point is overshot by the motor, and the controller then commands the motor to back step until it reaches the new final point. This jitter can take the form of a bounce in the movement of the pointer on the gauge that the stepper motor is controlling. In addition to jitter, another problem caused by the access to only a single table is sluggishness. In other words, if a prior art controller commands a stepper motor to follow the deceleration profile to reach a first destination, and the controller then receives a signal indicating that the stepper motor should reach a second, closer destination, the prior art controller cannot adjust to the changed destination, and the motor sluggishly moves to its first destination point and then back steps (i.e., reverses directionxe2x80x94such as going from clockwise to counter clockwise) to the second destination point.
Known stepper motors have also been operated using multiple tables, each such table having defined an acceleration or deceleration profile, and sometimes both, of the particular stepper motor. Thus, it has been known to use at least two tables to accelerate a stepper motor along an acceleration profile and then decelerate the stepper motor along a deceleration profile that is not symmetrical with the acceleration profile. However, those profiles were static, and could not be changed during acceleration or deceleration. That is, the values in prior tables have not been adjusted during acceleration or deceleration to alter the profile or profiles they defined. Further, once acceleration or deceleration had begun, it was not possible to switch between profiles to adjust to a change in the requested position of the stepper motor. The use of multiple tables to operate a stepper motor may be time consuming in terms of computational overhead and in terms of the amount of memory needed to store the tables. The problems of jitter and sluggishness also exist because of the inability to switch between profiles, or adjust a profile, during acceleration or deceleration.
In sum, while less expensive, stepper motors are more complex to control and may produce movement that is inherently more jittery than the movement produced by air core motors. While stepper motors have been operated according to multiple tables, that operation is predetermined and static, because prior controllers and control methods have controlled stepper motors according only to the values in the tables. No deviation from the acceleration or deceleration profile defined by the table has been possible during acceleration or deceleration, and it has not been possible to switch profiles in response to a requested change in position once acceleration or deceleration began. These shortcomings are at least some of the reasons that the cheaper stepper motors have not overtaken air core motors for use in controlling gauges in automotive instrument clusters.
Provided are methods and devices for controlling stepper motors. In one embodiment of the invention, a method for controlling a stepper motor is provided. The method includes creating an information set that defines a first acceleration profile of a stepper motor and a first deceleration profile of the stepper motor; and directing the stepper motor to follow either a second acceleration profile or a second deceleration profile after the stepper motor begins to follow either the first acceleration profile or the first deceleration profile.
In another embodiment, the invention is a stepper motor controller that includes a circuit configured to store an information set that defines a first acceleration profile of a stepper motor and a first deceleration profile of the stepper motor; and direct the stepper motor to follow either a second acceleration profile or a second deceleration profile after the stepper motor begins to follow either the first acceleration profile or the first deceleration profile.
Advantages associated with these embodiments of the invention include the flexibility to follow different acceleration and deceleration profiles after acceleration or deceleration has started, in contrast to prior art methods and controllers. As a result, greater accuracy and smoother movement may be achieved with these embodiments of the invention than with prior art methods.
The terms xe2x80x9caxe2x80x9d and xe2x80x9canxe2x80x9d mean one or more than one. The term xe2x80x9cpluralityxe2x80x9d means two or more than two. The term xe2x80x9canotherxe2x80x9d means at least a second or more. The term xe2x80x9cconnectedxe2x80x9d encompasses both direct and indirect connections, and is not limited to mechanical connections. The term xe2x80x9csubstantiallyxe2x80x9d and xe2x80x9csubstantially similarxe2x80x9d means at least approaching a given state (e.g., preferably within 10% of, more preferably within 1% of, and most preferably within 0.5% of). In the context of acceleration/deceleration profiles, two profiles are therefore xe2x80x9csubstantially similarxe2x80x9d if entries of one profile tracks corresponding entries of the other profile within 10%, more preferably within 1%, and most preferably within 0.5%.